package com.lagou.xml03;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

import java.util.List;

public class TestDOM4J {

    //1.获取XML文件中 所有的元素(标签)
    @Test
    public void test1() throws DocumentException {

        //1.获取XML解析对象
        SAXReader saxReader=new SAXReader();

        //2.解析XML 获取文档对象 document
        Document document = saxReader.read("E:\\Java\\java train\\jdbc_work\\xml_task03\\src\\com\\lagou\\xml03\\user.xml");

        //3.获取根元素
        Element rootElement = document.getRootElement();

        //4.获取根元素名称 users
        System.out.println(rootElement.getName());

        //5.获取根元素下的标签 user
        List<Element> elements = rootElement.elements();
        for(Element element:elements){
            System.out.println("根标签users下的子节点:"+element.getName());

            List<Element> eList = element.elements();
            for(Element e:eList){
                System.out.println("user标签下的子节点:"+e.getName());
            }
            break;
        }
    }


    //获取XML中 标签的文本信息 和 属性信息
    @Test
    public void test2() throws DocumentException {

        //1.获取解析XML的 SAXReader
        SAXReader saxReader=new SAXReader();

        //2.获取文档对象
        Document document = saxReader.read("E:\\Java\\java train\\jdbc_work\\xml_task03\\src\\com\\lagou\\xml03\\user.xml");

        //3.获取根节点
        Element rootElement = document.getRootElement();
        System.out.println(rootElement.getName());

        //4.获取子节点 user
        List<Element> elements = rootElement.elements();

        //5.获取集合中的第一个子节点
        Element user = elements.get(0);

        //6.获取节点中的文本信息
        String id = user.attributeValue("id");//获取属性id的值
        String name = user.elementText("name");
        String age = user.elementText("age");
        String hobby = user.element("hobby").getText();

        //7.打印
        System.out.println(id+","+name+","+age+","+hobby);
    }
}
